#ifndef _SCAN_H_
#define _SCAN_H_

enum ScanKind { Forward, Backward };

#define SCAN_BLOCK_DIM 256

template <typename T, ScanKind kind>
T * scan(T* dev_src, const unsigned int len);

template <typename T, ScanKind kind>
T * sat_scan(T* dev_src, const unsigned int width, const unsigned int height);

#endif // #ifndef _SCAN_H_